import requests
from bs4 import BeautifulSoup
import os
headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
    }
def spider1():
    ## 三国演义页面的url地址，用来获取章节的名字和章节详细内容的url
    url = 'https://www.shicimingju.com/book/sanguoyanyi.html'
    ## 发起get请求，获取数据
    response = requests.get(url=url,headers=headers).text
    ## 使用beautifulSoup格式化内容
    soup = BeautifulSoup(response,'lxml')
    ## 使用选择器获取标题和详细内容url
    for i in soup.select('div .book-mulu > ul > li > a'):
        title = i.text
        href = "https://www.shicimingju.com"+i['href']
        page2(title, href)
        print("*****正在爬取：",title,"*******")
    print("全部下载完毕")
'''
 参数：title(标题，用来命名章节)，href(章节url地址，用来请求获取数据)
 功能：请求第二个页面，下载保存第二个页面的文本内容
 '''
def page2(title,href):
    ## 创建文件夹保存文本
    if not os.path.exists("./三国演义"):
        print("没有“三国演义“这个文件夹，正在创建...")
        os.mkdir("./三国演义")
        print("创建成功！！")
    ## 获取章节里面的数据
    response = requests.get(url=href,headers=headers).text
    soup = BeautifulSoup(response,'lxml')
    p = soup.find_all('div',class_='chapter_content')[0].find_all('p')
    ## 下载保存文本
    with open("./三国演义/"+title+".txt","w+",encoding="utf-8") as fp:
        for i in p:
            fp.write("    "+i.text+"\n")
    print("下载保存完毕")
if __name__ == '__main__':
    spider1()